package com.lifeonwalden.fincalc.utils.date;

import java.time.temporal.ChronoUnit;
import java.util.Date;

/**
 * 计算天数的工具类
 */
public interface DaysUtils {
    /**
     * 计算日期区间的天数，算头算尾
     *
     * @param startDate
     * @param endDate
     * @return
     */
    static long calcWithHeadTail(Date startDate, Date endDate) {
        return startDate.toInstant().until(endDate.toInstant(), ChronoUnit.DAYS) + 1;
    }

    /**
     * 计算日期区间的天数，不算头或者算尾
     *
     * @param startDate
     * @param endDate
     * @return
     */
    static long calcWithoutHeadOrTail(Date startDate, Date endDate) {
        return calcWithHeadTail(startDate, endDate) - 1;
    }

    /**
     * 计算日期区间的天数，不算头尾
     *
     * @param startDate
     * @param endDate
     * @return
     */
    static long calcWithoutHeadTail(Date startDate, Date endDate) {
        return calcWithHeadTail(startDate, endDate) - 2;
    }
}
